From 8d5df4b7625754c8fd993545802572d1344352c7 Mon Sep 17 00:00:00 2001 From: "K. Handa" Date: Fri, 28 Jun 2013 23:53:44 +0900 Subject: [PATCH] mule.el (define-coding-system): New coding system properties :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and :prefer-utf-8. (set-buffer-file-coding-system): If :charset-list property of CODING-SYSTEM is `emacs', do not check if CODING-SYSTEM is appropriate for setting. --- lisp/international/mule.el | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 4ce1a28c438..3577e0e9152 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -732,7 +732,26 @@ decoding. This attribute has a meaning only when `:coding-type' is VALUE is a symbol representing the registered CCL program used for encoding. This attribute has a meaning only when `:coding-type' is -`ccl'." +`ccl'. + +:inhibit-null-byte-detection + +VALUE non-nil means Emacs ignore null bytes on code detection. +See the variable `inhibit-null-byte-detection'. This attribute +has a meaning only when `:coding-type' is `undecided'. + +:inhibit-iso-escape-detection + +VALUE non-nil means Emacs ignores ISO-2022 escape sequences on +code detection. See the variable `inhibit-iso-escape-detection'. +This attribute has a meaning only when `:coding-type' is +`undecided'. + +:prefer-utf-8 + +VALUE non-nil means Emacs prefers UTF-8 on code detection for +non-ASCII files. This attribute has a meaning only when +`:coding-type' is `undecided'." (let* ((common-attrs (mapcar 'list '(:mnemonic :coding-type @@ -761,7 +780,11 @@ encoding. This attribute has a meaning only when `:coding-type' is ((eq coding-type 'ccl) '(:ccl-decoder :ccl-encoder - :valids)))))) + :valids)) + ((eq coding-type 'undecided) + '(:inhibit-null-byte-detection + :inhibit-iso-escape-detection + :prefer-utf-8)))))) (dolist (slot common-attrs) (setcdr slot (plist-get props (car slot)))) @@ -1236,7 +1259,9 @@ just set the variable `buffer-file-coding-system' directly." (if (and coding-system buffer-file-coding-system (null force)) (setq coding-system (merge-coding-systems coding-system buffer-file-coding-system))) - (when (called-interactively-p 'interactive) + (when (and (called-interactively-p 'interactive) + (not (memq 'emacs (coding-system-get coding-system + :charset-list)))) ;; Check whether save would succeed, and jump to the offending char(s) ;; if not. (let ((css (find-coding-systems-region (point-min) (point-max)))) -- 2.30.2